<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">

  <title>insert</title>
  <link href="../cppreference.css" rel="stylesheet" type="text/css">
</head>

<body>
<table>
  <tr>
  <td>
  <div class="body-content">

  <div class="header-box">
    <a href="../index.html">cppreference.com</a> &gt; <a href=
    "index.html">C++ Maps</a> &gt; <a href="insert.html">insert</a>
  </div>

  <div class="name-format">
    insert
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;map&gt;
  iterator insert( iterator i, const <a href=
"../containers.html">TYPE</a>&amp; pair );
  void insert( <a href=
"../iterators.html">input_iterator</a> start, <a href=
"../iterators.html">input_iterator</a> end );
  pair&lt;iterator,bool&gt; insert( const <a href=
"../containers.html">TYPE</a>&amp; pair );
</pre>

  <p>The function insert() either:</p>

  <ul>
    <li>inserts <em>pair</em> after the element at <em>pos</em> (where
    <em>pos</em> is really just a suggestion as to where <em>pair</em>
    should go, since sets and maps are ordered), and returns an
    iterator to that element.</li>

    <li>inserts a range of elements from <em>start</em> to
    <em>end</em>.</li>

    <li>inserts <em>pair</em>&lt;<em>key</em>,<em>val</em>&gt;, but only
    if no element with key <em>key</em> already exists. The return value
    is an iterator to the element inserted (or an existing pair with key
    <em>key</em>), and a boolean which is true if an insertion took place.</li>
  </ul>

  <p>For example, the following code uses the insert() function (along
  with the make_pair() function) to insert some data into a map and
  then displays that data:</p>

  <pre class="example-code">
  map&lt;string,int&gt; theMap;
  theMap.insert( make_pair( "Key 1", -1 ) ); 
  theMap.insert( make_pair( "Another key!", 32 ) ); 
  theMap.insert( make_pair( "Key the Three", 66667 ) ); 

  map&lt;string,int&gt;::iterator iter;
  for( iter = theMap.begin(); iter != theMap.end(); ++iter ) {
    cout &lt;&lt; "Key: '" &lt;&lt; iter-&gt;first &lt;&lt; "', Value: " &lt;&lt; iter-&gt;second &lt;&lt; endl; 
  }
</pre>

  <p>When run, the above code displays this output:</p>
  <pre class="example-code">
  Key: 'Another key!', Value: 32
  Key: 'Key 1', Value: -1
  Key: 'Key the Three', Value: 66667
</pre>

  <p>Note that because maps are sorted containers, the output is
  sorted by the key value.  In this case, since the map key data type
  is <a href="../cppstring/index.html">string</a>, the map is sorted
  alphabetically by key.</p>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="map_operators.html">Map operators</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
